print("IO################################################## start")
f = open("D:/学习计划.txt", "r")  # 打开一个文件
print(f.read())  # 读取文件所以内容
f.close()  # 。文件使用完毕后必须关闭，因为文件对象会占用操作系统的资源，并且操作系统同一时间能打开的文件数量也是有限的

print("---------------------------------------\n")

# 简介打开一个文件 读取内容 并关闭流
with open("D:/学习计划.txt", "r") as f:
    print()
    print(f.read())

# 循环读取
with open("D:/学习计划.txt", "r") as f:
    while True:
        value = f.readline()
        if value:
            print(value)
        else:
            print("没有数据啦")
            break
# 设置字节码 并设置忽略编码错误
with open("D:/学习计划.txt", "r", encoding="utf-8", errors="ignore") as f:
    print(f.read())


# 写文件 务必要调用f.close()来关闭文件。
# 当我们写文件时，操作系统往往不会立刻把数据写入磁盘，而是放到内存缓存起来，空闲的时候再慢慢写入。
# 只有调用close()方法时，操作系统才保证把没有写入的数据全部写入磁盘。
# 忘记调用close()的后果是数据可能只写了一部分到磁盘，剩下的丢失了。所以，还是用with语句来得保险：
with open('D:/学习计划.txt', 'w') as f:  # 'w' 换成 'a'代表追加
    f.write('Hello, world!')

print("IO##################################################end\n")
